﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace studentskicentarETFa
{
    partial class DAL
    {
        public class InstruktivnaNastavaDAO: IDaoCrud<InstruktivnaNastava>
        {
            protected MySqlCommand komanda;

            public long create(InstruktivnaNastava entitet)
            {
                try
                {
                    MySqlCommand komanda = new MySqlCommand();
                    komanda.CommandText = "insert into InstruktivaNastava values (@ID_Instruktivna,@ID_Termin,@Odluka) ";
                    komanda.Parameters.AddWithValue("@ID_Instruktivna", entitet.ID_Instruktivna);
                    komanda.Parameters.AddWithValue("@ID_Termin", entitet.ID_Termin);
                    komanda.Parameters.AddWithValue("@Odluka", entitet.Odluka);
                    komanda.Connection = con;
                    komanda.Prepare();
                    komanda.ExecuteNonQuery();
                    con.Close();
                    return 1;
                }
                catch (Exception ex)
                {
                    throw ex;
                }

            }

            public InstruktivnaNastava read(InstruktivnaNastava entitet)
            {
                try
                {
                    komanda = new MySqlCommand("select * from InstruktivaNastava where ID_Instruktivna = '" + entitet.ID_Instruktivna.ToString() + "';", con);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    InstruktivnaNastava i = null;
                    while (citac.Read())
                    {
                        i = new InstruktivnaNastava(citac.GetString("ID_Instruktivna"),  citac.GetString("ID_Termin"),citac.GetInt32("Odluka"));
                        return i;
                    }
                    return i;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public InstruktivnaNastava  update(InstruktivnaNastava entitet)
            {
                try
                {
                    komanda.CommandText = "update InstruktivnaNastava set ID_Instruktivna=@ID_Instruktivna, ID_Termin=@ID_Termin,Odluka=@Odluka ";
                    komanda.Parameters.AddWithValue("@ID_Instruktivna", entitet.ID_Instruktivna);
                    komanda.Parameters.AddWithValue("@ID_Termin", entitet.ID_Termin);
                    komanda.Parameters.AddWithValue("@Odluka", entitet.Odluka);

                    komanda.Connection = con;
                    komanda.Prepare();
                    komanda.ExecuteNonQuery();
                    con.Close();
                    return read(entitet);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public void delete(InstruktivnaNastava entitet)
            {
                try
                {
                    komanda = new MySqlCommand("delete from InstruktivneNastave where ID_Instruktivna = " + entitet.ID_Instruktivna + ";", con);
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public List<InstruktivnaNastava> getAll()
            {
                try
                {
                    komanda = new MySqlCommand("select * from termin", con);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    List<InstruktivnaNastava> i = new List<InstruktivnaNastava>();
                    while (citac.Read())
                        i.Add(new InstruktivnaNastava(citac.GetString("ID_Instruktivna"),  citac.GetString("ID_Termin"),citac.GetInt32("Odluka")));
                    
                        return i;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public List<InstruktivnaNastava> getByExample(string name, string value)
            {
                try
                {
                    komanda = new MySqlCommand("select * from InstruktivnaNastava where '" + value + "'='" + name + "'", con);
                    List<InstruktivnaNastava> i = new List<InstruktivnaNastava>();
                    MySqlDataReader citac = komanda.ExecuteReader();
                    while (citac.Read())
                        i.Add(new InstruktivnaNastava(citac.GetString("ID_Instruktivna"),  citac.GetString("ID_Termin"),citac.GetInt32("Odluka")));
                        return i;  
                }

                catch (Exception e)
                {
                    throw e;
                }
            }

            public InstruktivnaNastava getById(int id)
            {
                try
                {
                    komanda = new MySqlCommand("se1ect * from InstruktivnaNastava where ID_Instruktivna='" + id + "", con);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    InstruktivnaNastava i = null;
                    while (citac.Read())
                    {
                        i = new InstruktivnaNastava(citac.GetString("ID_Instruktivna"),  citac.GetString("ID_Termin"),citac.GetInt32("Odluka"));
                        return i;
                    }
                    return i;
                    
                }
                catch (Exception e)
                {
                    throw e;
                }

            }
             

        }
    }
}
